package com.shujia.common_util.three;

import org.junit.Test;

import java.util.Date;

public class ObjectDemo {


    @Test
    public void test1() {
        Date date = new Date();
        System.out.println(date);
    }

    public static void main(String[] args) {
        ObjectDemo demo = new ObjectDemo();
        ObjectDemo demo1 = new ObjectDemo();
        // hashCode 可以理解成内存地址值的抽象
        System.out.println(demo.hashCode());
        System.out.println(demo1.hashCode());


        // identityHashCode不受hashCode方法重写的影响的
        System.out.println(System.identityHashCode(demo));
        System.out.println(System.identityHashCode(demo1));

        // com.shujia.common_util.three.ObjectDemo@
        System.out.println(demo.toString());

        // 在打印一个对象的时候, 会默认调用toString方法
        System.out.println(demo1);

        // 从写了toString方法
        String s1 = "abc";
        System.out.println(s1);
    }


    // Object里面的方法是可以重写
    @Override
    public int hashCode() {
        return 666888;
    }

    @Override
    public String toString() {
        return "这是一个Object的demo 测试类...";
    }
}
